package com.atguigu.gmall.list.bean;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

/**
 * 测试SpringData操作ES
 *
 * ES：   索引、类型（废弃,_doc）、文档（json）
 * MySQL：库、表、记录
 *
 * ES - CRUD：
 *  GET /_cat/indices: 查看所有索引；  "show databases;"
 *  PUT /person      :创建person索引； "create database person"
 *  DELETE /person   :删除person索引；
 *  POST /person/_doc/1   :保存数据
 *  {
 *   "id":1,
 *   "personName":"haha",
 *   "age":18
 *  }
 *  GET /person/_doc/1   :查询1号文档
 *  DELETE /person/_doc/1:删除1号文档
 *  PUT /person/_doc/1:   更新1号文档
 * {
 *   "id": 1,
 *   "personName": "heihei",
 *   "age": 18
 * }
 */
@Document(indexName = "person") //代表Person是es中的一个文档；
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Data
public class Person {

    @Id
    private Long id; //这是Person唯一标识


    //倒排索引;
    //Text：     文本：保存的时候会分词
    //Keyword： 关键字：保存的时候不用分词
    @Field(type= FieldType.Keyword) //这是一个文本，全文检索字段
    private String personName; // 张三


    @Field
    private Integer age;

}
